package com.vegetable.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 销售出库变更追踪注解
 * 用于标记需要监控commodities和costs变化的方法
 * 
 * @author system
 * @since 2025-10-23
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SalesOutChangeTracking {
    
    /**
     * 操作描述
     */
    String value() default "";
    
    /**
     * 操作类型
     */
    OperationType type() default OperationType.SAVE;
    
    /**
     * 操作类型枚举
     */
    enum OperationType {
        /**
         * 保存
         */
        SAVE,
        
        /**
         * 提交
         */
        SUBMIT,
        
        /**
         * 修改
         */
        UPDATE,
        
        /**
         * 删除
         */
        DELETE
    }
}
